package com.cheng.xbsc.controller;

import com.cheng.xbsc.entity.vo.Result;
import com.cheng.xbsc.service.CarService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

/**
 * @Author: 刘文铖
 */
@RestController
@RequestMapping("/car")
public class CarController {

    @Autowired
    private CarService carService;

    /**
     * 查询购物车的商品
     *
     * @return
     */
    @GetMapping("/findCars")
    public Result findCars() {
        return new Result(true, "查询成功", carService.findByStatus("0"));
    }

    /**
     * 更新商品数量
     *
     * @param carId
     * @param goodNum
     * @return
     */
    @PutMapping("/updateNum/{carId}")
    public Result updateNum(@PathVariable("carId") Integer carId, @RequestParam Integer goodNum) {
        carService.updateNum(carId, goodNum);
        return new Result(true, "跟新成功");
    }

    /**
     * 根据id删除购物车商品
     */
    @DeleteMapping("/{carId}")
    public Result deleteById(@PathVariable("carId") Integer carId) {
        carService.deleteById(carId);
        return new Result(true, "删除成功");
    }

    /**
     * 更新为待支付商品
     */
    @PutMapping("/updateStatus/{carId}")
    public Result updateStatus(@PathVariable("carId") Integer carId) {
        carService.updateStatus(carId);
        return new Result(true, "更新成功");
    }

    /**
     * 全部结算
     *
     * @return
     */
    @PutMapping("/updateAllStatus")
    public Result updateAllStatus() {
        carService.updateAllStatus("1");
        return new Result(true, "更新成功");
    }

    /**
     * 查询待支付的商品
     *
     * @return
     */
    @GetMapping("/findWaitPay")
    public Result findWaitPay() {
        return new Result(true, "查询成功", carService.findByStatus("1"));
    }

    /**
     * 更新为已支付商品
     */
    @PutMapping("/doPay/{carId}")
    public Result doPay(@PathVariable("carId") Integer carId) {
        carService.doPay(carId);
        return new Result(true, "更新成功");
    }

    /**
     * 更新全部支付
     */
    @PutMapping("/doPayAll")
    public Result doPayAll() {
        carService.doPayAll();
        return new Result(true, "更新成功");
    }
}
